VMI pad-8 vs CCE ONEPT reduce store issue - #1013
Conversation
Drop the full TileLang-style header dump; keep the thin wrappers the CCE ONEPT VF kernel still needs.
|
I think we should first separate a kernel-writing issue from a compiler lowering issue here. For each accumulator, the VMI semantics are already a red = pto.vmi.vcadd(acc_v, mask_t, reassoc=True)
pto.vmi.vstore(red, reduced, i, mask1)
red = pto.vmi.vcadd(acc_v, mask_t, reassoc=True)
padded = pto.vmi.vbrc(red, size=8)
pto.vmi.vstore(padded, reduced_pad, i * 8, mask8)I tested a self-contained direct The current lowering is still not ideal: the direct form becomes roughly instead of the CCE Could we add the following three-way measurement before attributing the whole gap to missing ONEPT support?
This would tell us how much of the reported gap comes from the padded kernel formulation and how much remains in PTOAS lowering. |
I already tried this in this commit, "VMI mask1" variant, still much slower than CCE ONEPT store... Added a more focused commit 8f321ea here, not much faster than pad8, still need ONEPT scalar store in ptoas vmi. |
|
group=1 works c5345df |
ONEPT_B32(feature gap 03 in missing VMI features for high-perf simd kernels #997)See
docs/repro/store_pad8/README.mdto reproduce.Tracking issue: #1022